var ds = new Ext.data.Store({
			proxy : new Ext.data.HttpProxy({
						url : 'visitLog_list.action',
						method : 'POST'
					}),
			reader : new Ext.data.JsonReader({
						root : 'visitLogs',
						totalProperty : 'totalCount'
					}, [{
								name : 'visitLogId',
								mapping : 'visitLogId',
								type : 'long',
								hidden : 'true'
							}, {
								name : 'operationName',
								mapping : 'operationName',
								type : 'string'
							}, {
								name : 'visitorName',
								mapping : 'visitorName',
								type : 'string'
							}, {
								name : 'visitIP',
								mapping : 'visitIP',
								type : 'string'
							}, {
								name : 'result',
								mapping : 'result',
								type : 'int'
							}, {
								name : 'operationTimestamp',
								mapping : 'operationTimestamp',
								type : 'long'
							}])
		});
		   
var cm_visitlog = new Ext.grid.ColumnModel([new Ext.grid.RowNumberer(), {
	header : "操作名称",
	width : 100,
	
	dataIndex : 'operationName',
    sortable : true,
	renderer : function(value, metadata, record) {
		return "<a href = 'javascript:void(0)' onclick=javascript:showVisitlog('"
				+ record.data.visitLogId + "')> " + value + " </a>";
	}
}, {
	header : "访问者",
	width : 150,
	dataIndex : 'visitorName',
	sortable : true
}, {
	header : "访问者IP",
	width : 150,
	dataIndex : 'visitIP',
	sortable : true
}, {
	header : "操作结果",
	width : 120,
	dataIndex : 'result',
	sortable : true,
	renderer : function(value, metadata, record) {
		if (value == 0) {
			return '不成功';
		} else if (value == 1) {
			return '成功';
		};
	}
}, {
	header : "操作时间",
	width : 170,
	dataIndex : 'operationTimestamp',
	sortable : true,	
	renderer : function totime(value, metadata, record) {
	              return new Date(value).format('Y-m-d H:i');
        }
}]);

var myDate = new Date();

if(myDate.getMonth()<=8){
	if(myDate.getDate()<=9){
    var maxlength1=myDate.getFullYear()+ '-' + 0+eval(myDate.getMonth()+1) +'-'+0+myDate.getDate(); 
	}else{
		  var maxlength1=myDate.getFullYear()+ '-' + 0+eval(myDate.getMonth()+1) +'-'+myDate.getDate(); 
	}
}else {
	
	if(myDate.getDate()<=9){
	    var maxlength1=myDate.getFullYear()+ '-' + eval(myDate.getMonth()+1) +'-'+0+myDate.getDate(); 
	}else{
	    var maxlength1=myDate.getFullYear()+ '-' + eval(myDate.getMonth()+1) +'-'+myDate.getDate(); 
	}
	
}
var select_visitlog = new Ext.Button({
	text : '查找访问日志',
	width : 100,
	iconCls:'VisitLog_search',
	handler : function() {
	
	visitlogForm = new Ext.form.FormPanel({
		labelAlign : 'right',
		title : 'form',
		labelWidth : 80,
		frame : true,
		width :600,
	    labelWidth:'100',
		title : '',
		store : ds,
		items : [
		       {    xtype : 'textfield',
						name : 'visitorName',
						allowBlank : true,
						fieldLabel : '访&nbsp;问&nbsp;者',
						itemCls : 'form_text'
			    }, {xtype : 'textfield',
						name : 'operationName',
						allowBlank : true,
						fieldLabel : '操作名称',
						itemCls : 'form_text'
			    },{
			    	xtype : 'combo',
				   store : new Ext.data.SimpleStore({
					data : [['0', '不成功'], ['1', '成功']],
					fields : ['value', 'text']
				 }),
				hiddenName : 'result',
				allowBlank : true,
				editable : false,
				fieldLabel : '操作结果',
				emptyText : '请选择',
				mode : 'local',
				triggerAction : 'all',
				valueField : 'value',
				displayField : 'text',
				itemCls : 'form_text'
			}, {
	        	xtype : 'datefield',
				name : 'operationTimeStart',
				editable : false,
				fieldLabel : '开始日期',
				format : 'Y-m-d',
				itemCls : 'form_text',
				minValue:'2008-01-01',
				maxValue : maxlength1
			}, {
				xtype : 'datefield',
				name : 'operationTimeEnd',
				editable : false,
				fieldLabel : '结束日期',
				format : 'Y-m-d',
				itemCls : 'form_text',
				minValue:'2008-01-01',
				maxValue : maxlength1
			}],
		buttons : [{
			text : '查找',
			type : 'submit',
			handler : function() {
			
			var startTimeArray = Ext.query('[name = operationTimeStart]');
			var endTimeArray = Ext.query('[name = operationTimeEnd]');
			var startTime = '';
			var endTime = '';
			for(var i = 0;i < startTimeArray.length; i++)
			{
				startTime = startTime + startTimeArray[i].value;
			}
			for(var i = 0;i < endTimeArray.length; i++)
			{
				endTime = endTime + endTimeArray[i].value;
			}
			if(startTime > endTime)
			{
				Ext.Msg.show({
					title : '错误提示',
						msg : '开始时间必须小于结束时间',
						buttons : Ext.Msg.OK,
						icon : Ext.Msg.ERROR,
						width : 200
					});
				return;
			}
				ds.baseParams = visitlogForm.getForm()
						.getValues();
				ds.load({
							params : {
								start : 0,
								limit : 20
							}
						});
				window_select_visitlog.hide();
			}
		},{
			text:'取消',
			handler:function(){
			window_select_visitlog.close();
		}
		}]
	
	});
	var window_select_visitlog = new Ext.Window({
		title : '查找访问日志',
		width : 600,
		iconCls:'VisitLog_search',
		resizable : false,
		constrain :true,
		autoHeight : true,
		modal : true,
		closeAction : 'hide',
		closable : false,
		items : visitlogForm
	}).show();
	
}
});

var list_visitlogs = new Ext.Button({
	
	text : '列出所有访问日志',
	iconCls:'refresh',
	width : 100,
	handler : function() {
		ds.baseParams = null;
		ds.load({
			params : {
				start : 0,
				limit : 20,
				visitorName : '',
				visitIP : '',
				result : '',
				operationTimestamp : '',
				order : 0
			}
		});
	}
	
});

var xx='';
var back_visitlog = new Ext.Button({
	text : '备份访问日志',
	iconCls:'backLog_manager',
	width : 100,
	handler : function() {
	backlogForm = new Ext.form.FormPanel({
		labelAlign : 'right',
		title : 'form',
		labelWidth : 80,
		frame : true,
		width :350,
		title : '',
		items : [
		     {
	        	xtype : 'datefield',
				name : 'operationTimeStart',
				editable : false,
				fieldLabel : '开始日期',
				format : 'Y-m-d',
				allowBlank : false,
				itemCls : 'form_text',
				minValue:'2008-01-01',
				maxValue : maxlength1

			}, {
				xtype : 'datefield',
				name : 'operationTimeEnd',
				allowBlank : false,
				editable : false,
				fieldLabel : '结束日期',			
				format : 'Y-m-d',
				itemCls : 'form_text',
				minValue:'2008-01-01',
				maxValue : maxlength1
			},{
			 xtype: 'panel',
			 id:'hh',
			 html:xx
			}],
		buttons : [{
			     	  text:'备份',
			     	  type:'submit',
			     	  handler:function(){
			
						var startTimeArray = Ext.query('[name = operationTimeStart]');
						var endTimeArray = Ext.query('[name = operationTimeEnd]');
						var startTime = '';
						var endTime = '';
						for(var i = 0;i < startTimeArray.length; i++)
						{
							startTime = startTime + startTimeArray[i].value;
						}
						for(var i = 0;i < endTimeArray.length; i++)
						{
							endTime = endTime + endTimeArray[i].value;
						}
						if(startTime > endTime)
						{
							Ext.Msg.show({
								title : '错误提示',
									msg : '开始时间必须小于结束时间',
									buttons : Ext.Msg.OK,
									icon : Ext.Msg.ERROR,
									width : 200
								});
							return;
						}
						
			     	  	    if(backlogForm.form.isValid()){
			     	  	         
			     	  	    	backlogForm.form.doAction('submit',{
			     	  	    		url:'visitLog_back.action',
			     	  	    		methord:'post',
			     	  	    		params:'',
			     	  	    		success:function(form,action){
//			     	  	    			var path = "download.action?inputPath=" + action.result.filePath;
//			     	  	    			window.location.href = path;
                                         if(xx==''){
                                          var name='选择备份路径';
                                          
			     	  	    				xx=" <br/><p align='center' ><a href=\"download.action?inputPath="+action.result.filePath+"\">"+name+"</a> </p>  ";
			     	  	    			    showdownfile(xx);
			     	  	    				
                                         }else{
                                         	showdownfile(xx);
                                         	
                                         }
			     	  	    			window_select_visitlog.hide();
			     	  	    			
			     	  	    	},
			     	  	    		failure : function(form, action) {
										if (action.failureType == 'server') {
											Ext.Msg.show({
												title : '错误提示',
												msg : '操作失败!',
												buttons : Ext.Msg.OK,
												icon : Ext.Msg.ERROR,
												width : 200
											});
											
										} else if (action.failureType == 'connect') {
											Ext.Msg.show({
												title : '错误提示',
												msg : '指定路径连接错误!',
												buttons : Ext.Msg.OK,
												icon : Ext.Msg.ERROR,
												width : 200
											});
											
										} else if (action.failureType == 'client') {
											Ext.Msg.show({
												title : '错误提示',
												msg : '非法提交!',
												buttons : Ext.Msg.OK,
												icon : Ext.Msg.ERROR,
												width : 200
											});
											
										} else {
											Ext.Msg.show({
												title : '警告提示',
												msg : '服务器数据传输错误!',
												buttons : Ext.Msg.OK,
												icon : Ext.Msg.ERROR,
												width : 200
											});
										}
									}
			     	  	    	});
			     	  	    }
			     	  }
			     },{
						text:'取消',
						handler:function(){
						window_select_visitlog.close();
					}
					}]
	
	});
	var window_select_visitlog = new Ext.Window({
		title : '备份访问日志',
		width : 350,
		iconCls:'backLog_manager',
		resizable : false,
		autoHeight : true,
		constrain :true,
		modal : true,
		closeAction : 'hide',
		closable : false,
		items : backlogForm
	}).show();
	
}
});

function showdownfile(xx){
	var mywindow = new Ext.Window({
		title: '备份详情',
		draggable:true,//可以拖动窗口
		iconCls:'backLog_manager',
		modal : true,
		resizable : false,
		constrain:true,
		constrain :true,
		closeAction : 'hide',
		width : 250,
		closable : false,
		center:true,
		items:[{
			
			xtype: 'panel',
			html:' <img src="images/help/guanli.png" width="230" height="35" />'
		},{
			fieldLabel: '备份稿件',
			xtype: 'panel',
			html:xx
		}],
		buttons:[{
			text:'确定',
			handler:function(){
				    Ext.Msg.show({
								title : '信息',
								msg : '备份成功',
								buttons : Ext.Msg.OK,
								icon : Ext.Msg.INFO,
								width : 200
							});
			mywindow.close();
		}
	                                   
		}]
		}).show();
}


var remove_visitlog = new Ext.Button({
	text : '删除访问日志',
	iconCls:'removeVisitLog_manager',
	width : 100,
	handler : function() {
	
	removelogForm = new Ext.form.FormPanel({
		labelAlign : 'right',
		title : 'form',
		labelWidth : 80,
		frame : true,
		width :350,
		title : '',
		items : [
		     {
	        	xtype : 'datefield',
				name : 'operationTimeStart',
				editable : false,
				fieldLabel : '开始日期',
				format : 'Y-m-d',
				allowBlank : false,
				itemCls : 'form_text',
				minValue:'2008-01-01',
				maxValue :maxlength1
			}, {
				xtype : 'datefield',
				name : 'operationTimeEnd',
				editable : false,
				fieldLabel : '结束日期',
				format : 'Y-m-d',
				allowBlank : false,
				itemCls : 'form_text',
				minValue:'2008-01-01',
				maxValue : maxlength1
			}],
		buttons : [{
			     	  text:'删除',
			     	  type:'submit',
			     	  handler:function(){
			            Ext.Msg.confirm('删除确认', '你确定删除?', function(btn) {
			             if (btn == 'yes') { 
			     	  	var startTimeArray = Ext.query('[name = operationTimeStart]');
						var endTimeArray = Ext.query('[name = operationTimeEnd]');
						var startTime = '';
						var endTime = '';
						for(var i = 0;i < startTimeArray.length; i++)
						{
							startTime = startTime + startTimeArray[i].value;
						}
						for(var i = 0;i < endTimeArray.length; i++)
						{
							endTime = endTime + endTimeArray[i].value;
						}
						if(startTime > endTime)
						{
							Ext.Msg.show({
								title : '错误提示',
									msg : '开始时间必须小于结束时间',
									buttons : Ext.Msg.OK,
									icon : Ext.Msg.ERROR,
									width : 200
								});
							return;
						}
			     	  	    if(removelogForm.form.isValid()){ 
			     	  	    	removelogForm.form.doAction('submit',{
			     	  	    	
			     	  	    		url:'visitLog_delete.action',
			     	  	    		methord:'post',
			     	  	    		params:'',
			     	  	    	
			     	  	    		success:function(form,action){
			     	  	    	    
			     	  	    		if(action.result.msg=='ok'){
			     	  	    		    Ext.Msg.show({
										title : '成功提示',
										msg : '删除成功!',
										buttons : Ext.Msg.OK,
										icon : Ext.Msg.INFO,
										width : 200
									});
									
									    ds.load({
			     	  	    		    params:{
			     	  	    	 	         start:0,
			     	  	           	         limit:20
			     	  	    	            	}
			     	  	    		   });
			     	  	    		}else if(action.result.msg=='wrong'){
			     	  	    			
			     	  	    			    Ext.Msg.show({
										     title : '操作提示',
										     msg : '操作失败,三个月之内日志不能删除!',
										     buttons : Ext.Msg.OK,
										     icon : Ext.Msg.ERROR,
										     width : 200
			     	  	    		      });
			     	  	    		}
			     	  	    			
			     	  	    			window_select_visitlog.close();
			     	  	    		},
			     	  	    		failure : function(form, action) {
										if (action.failureType == 'server') {
											Ext.Msg.show({
												title : '错误提示',
												msg : '操作失败!',
												buttons : Ext.Msg.OK,
												icon : Ext.Msg.ERROR,
												width : 200
											});
											
										} else if (action.failureType == 'connect') {
											Ext.Msg.show({
												title : '错误提示',
												msg : '指定路径连接错误!',
												buttons : Ext.Msg.OK,
												icon : Ext.Msg.ERROR,
												width : 200
											});
											
										} else if (action.failureType == 'client') {
											Ext.Msg.show({
												title : '错误提示',
												msg : '非法提交!',
												buttons : Ext.Msg.OK,
												icon : Ext.Msg.ERROR,
												width : 200
											});
											
										} else {
											Ext.Msg.show({
												title : '警告提示',
												msg : '服务器数据传输错误!',
												buttons : Ext.Msg.OK,
												icon : Ext.Msg.ERROR,
												width : 200
											});
										}
									}
			     	  	    	});
			     	  	       }
			            	 }
			            	 else{
			            	 	window_select_visitlog.hide();		            	 	
			            	 }
			              });			              
			          }
			     },{
			text:'取消',
			handler:function(){
			window_select_visitlog.close();
		}
		}]
	
	});
	var window_select_visitlog = new Ext.Window({
		title : '删除访问日志',
		width : 350,
		iconCls:'removeVisitLog_manager',
		resizable : false,
		autoHeight : true,
		constrain :true,
		modal : true,
		closeAction : 'hide',
		closable : false,
		items : removelogForm
	}).show();
	
}
});
var grid = new Ext.grid.GridPanel({
	title : '当前位置：日志管理',
	loadMask : {
		msg : '数据加载中...'
	},
	ds : ds,
	store : ds,
	region : 'center',
	autoScroll : true,
	cm : cm_visitlog,
	autoExpandColumn : 1,
	tbar : [select_visitlog,back_visitlog,remove_visitlog,list_visitlogs],
	bbar : new Ext.PagingToolbar({
				pageSize : 20,
				store : ds,
				displayInfo : true,
				beforePageText : '第',
				afterPageText : '页-共{0}页',
				displayMsg : '显示{0} - {1} 条  共 {2} 条',
				emptyMsg : "没有记录"
			})
});
ds.load({
	params : {
		start : 0,
		limit : 20
	}
});


window.showVisitlog=function(needParam){
    Ext.Ajax.request({
		url : 'visitLog_view.action',
		method : 'post',
		params : {
			visitLogId : needParam
		},
		success : function(resp, opts) {
			var respText = Ext.util.JSON.decode(resp.responseText);
			
			var visitLog = respText.visitLog;		
			var result='';
			var visitorType='';
			if(visitLog.result =='0'){
				result='不成功';
			}else{
				result='成功';
				
			}
			if(visitLog.visitorType =='1'){
				visitorType='内部人员';
			}else{
				visitorType='投稿单位人员';
				
			}
			if (respText.success) {
				 var visitLog_show=new Ext.Window({
					title : '日志详情',
					width : 600,
					resizable : false,
					constrain :true,
					autoHeight : true,
					modal : true,
					closeAction : 'hide',
					closable : false,
					items : [new Ext.FormPanel({
								border : false,
								frame : true,
								labelAlign : 'right',
								labelWidth : 100,
								defaults : {
									itemCls : 'form_text unedit',
									msgTarget : 'side'
								},
								defaultType : 'textfield',
								items : [{  
									fieldLabel : '操作名称',
									value :  visitLog.operationName,
									itemCls : 'form_long clear unedit',
									readOnly : true,
									width:425
							}, {
									fieldLabel : '访&nbsp;问&nbsp;者',
									value : visitLog.visitorName,
									readOnly : true,
									maxLength : 30
								}, {
									fieldLabel : '操作结果',
									value :result,
									readOnly : true,
									maxLength : 30
								}, {
									fieldLabel : '人员类型',
									value :visitorType,
									readOnly : true,
									maxLength : 30
								}, {
									fieldLabel : '访问者IP',
									value : visitLog.visitIP,
									readOnly : true,
									maxLength : 30
								}, {
									fieldLabel : '操作时间',
									value : formatTime(visitLog.operationTimestamp,"",""),
									readOnly : true,
									maxLength : 30
								}, {
									fieldLabel : '错误信息',
									value : visitLog.errorMessage,
									readOnly : true,
									maxLength : 30
								}, {
									fieldLabel : '请求参数',
									value : visitLog.requestParameter,
									readOnly : true,
									itemCls : 'form_long clear unedit',
									width:425
							
								}, {
									fieldLabel : '请求URL',
									value : visitLog.operationURL,
									readOnly : true,
									itemCls : 'form_long clear unedit',
									width:425
						
								}],
										buttons:[{
											text:'关闭',
											handler:function(){
											visitLog_show.close();
										}
										}]
							})]

				}).show();
			} else {
				Ext.Msg.show({
					title : '错误提示',
					msg : '查看失败!',
					buttons : Ext.Msg.OK,
					icon : Ext.Msg.ERROR,
					width : 200
				})
			}
		},
		failure : function() {
			Ext.Msg.show({
						title : '错误提示',
						msg : '查看失败!',
						buttons : Ext.Msg.OK,
						icon : Ext.Msg.ERROR,
						width : 200
					});
		}
	});
};

//时间格式转换
function formatTime(value, metadata, record){
	if(null==value){
		return null;
	}else{
		return new Date(value).format('Y-m-d H:i');
	}
}
var p_visitlog = {
		id : 'listVisitLog-search',
		border : false,
		layout : 'border',
		items : [grid]
	};
	Ext.getCmp('content-panel').add(p_visitlog);
	Ext.getCmp('content-panel').layout.setActiveItem('listVisitLog-search');
